home *** CD-ROM | disk | FTP | other *** search
- #include <X11/Xlib.h>
- #include "wraster.h"
- #include <stdlib.h>
- #include <stdio.h>
- #include "tile.xpm"
- Display *dpy;
- Window win;
- RContext *ctx;
- RImage *img;
- Pixmap pix;
-
-
-
- int main(int argc, char **argv)
- {
- RContextAttributes attr;
-
- dpy = XOpenDisplay("");
- if (!dpy) {
- puts("cant open display");
- exit(1);
- }
-
- attr.flags = RC_RenderMode | RC_ColorsPerChannel;
- attr.render_mode = RDitheredRendering;
- attr.colors_per_channel = 4;
- ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr);
-
- if (argc<2)
- img = RGetImageFromXPMData(ctx, image_name);
- else
- img = RLoadImage(ctx, argv[1], 0);
-
- if (!img) {
- puts(RMessageForError(RErrorCode));
- exit(1);
- }
- /*
- if (argc > 2) {
- RImage *tmp = img;
-
- img = RSmoothScaleImage(tmp, tmp->width*atol(argv[2]),
- tmp->height*atol(argv[2]));
- RDestroyImage(tmp);
- }
- */
-
- if (argc > 2) {
- img = RScaleImage(img, img->width*atof(argv[2]),
- img->height*atof(argv[2]));
- }
-
- {
- RImage *tmp = RCreateImage(200, 200, True);
- RColor col = {0,0,255,255};
-
- if (img->format == RRGBAFormat)
- puts("aklpha");
- else
- puts("no alpha");
-
- RClearImage(tmp, &col);
-
- RCombineArea(tmp, img, 0, 0, 20, 20, 10, 10);
- img = tmp;
- }
-
-
- if (!RConvertImage(ctx, img, &pix)) {
- puts(RMessageForError(RErrorCode));
- exit(1);
- }
-
- printf("%ix%i\n", img->width, img->height);
-
-
-
- win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10,
- 400, 400, 0, 0, 0);
- XSetWindowBackgroundPixmap(dpy, win, pix);
- XClearWindow(dpy, win);
- XMapRaised(dpy, win);
- XFlush(dpy);
- getchar();
- exit(0);
- }
-